#pragma once
#include <game/Config.h>

ARELLO_GAME_NAMESPACE_DECL_START
class ServiceProvider;
namespace flow {
class EntryDefinition;
class FlowAdjuster;

class Trigger
{
public:
	Trigger()
		: adjuster(0)
		, serviceProvider(0)
	{ }
	virtual ~Trigger() { }

	virtual void ScreenChanging(EntryDefinition* newEntry) = 0;
	void SetFlowAdjuster(FlowAdjuster* adjuster) { this->adjuster = adjuster; }
	void SetServiceProvider(ServiceProvider* value) { this->serviceProvider = value; }
protected:
	FlowAdjuster* GetFlowAdjuster() { return this->adjuster; } 
	ServiceProvider* GetServiceProvider() { return this->serviceProvider; }
private:
	FlowAdjuster* adjuster;
	ServiceProvider* serviceProvider;
};

} // namespace flow
ARELLO_GAME_NAMESPACE_DECL_END